package com.boge.ai.tool;

import com.boge.ai.bean.UserInfo;
import org.springframework.ai.tool.execution.ToolCallResultConverter;

import java.lang.reflect.Type;

/**
 * 自定义工具调用结果转换器
 * 
 * 该类实现了 Spring AI 框架的 ToolCallResultConverter 接口，
 * 用于将工具调用的返回结果转换为字符串格式。
 * 主要用于处理特定类型的对象（如 UserInfo）的格式化输出。
 * 
 * @author AI Assistant
 * @since 1.0
 */
public class CustomConverter implements ToolCallResultConverter {
    
    /**
     * 将工具调用的结果转换为字符串
     * 
     * 该方法会根据结果对象的类型进行相应的转换处理：
     * - 如果结果是 UserInfo 类型，则返回格式化的用户信息字符串
     * - 其他类型则使用默认的字符串转换
     * 
     * @param result 工具调用的返回结果对象
     * @param returnType 期望的返回类型（在此实现中未使用）
     * @return 转换后的字符串表示
     */
    @Override
    public String convert(Object result, Type returnType) {
        // 检查结果是否为 UserInfo 类型
        if (result instanceof UserInfo) {
            // 如果是 UserInfo 类型，返回格式化的用户信息
            return "用户: " + ((UserInfo) result).getName();
        }
        // 对于其他类型，使用默认的字符串转换
        return String.valueOf(result);
    }
}
